package org.product.controller;

import com.google.gson.Gson;
import org.product.dao.ProductDao;
import org.product.dao.impl.ProductDaoImpl;
import org.product.entity.Product;
import org.product.factory.DaoFactory;
import org.product.util.GsonUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;


@WebServlet("/api/updateProductCount.do")
public class UpdateProductCountServlet extends BaseServlet {
    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 第一：获取页面发送过来的商品信息（合法性验证[略]）
        // String id = req.getParameter("productId") ;
        // int productCount = Integer.parseInt(req.getParameter("productCount")) ;

        // 格式1（URL参数字符串）：参数名=值&参数名=值
        // 格式2（JSON字符串）：{"参数名":"值"}  -> Gson - Map -> 值
        Map<String,String> map = getParameterMap(req) ;

        String productId = map.get("productId") ;
        int productCount = Integer.parseInt(map.get("productCount")) ;

        // 第二：创建实体对象，并封装数据
        Product pro = new Product(productId,null,0,productCount,null) ;

        // 第三：创建DAO对象，实现数据添加操作
        ProductDao productDao = DaoFactory.getProductDaoInstance();
        int r = productDao.updateCount(pro);

        // 第四：响应结果
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter() ;
        if(r==1) {
            out.print(new Gson().toJson(successJson("修改数量成功")));

        } else {
            out.print(new Gson().toJson(errorJson("修改数量失败")));
        }

        // 第五：关闭对象
        out.flush();
        out.close();
    }

}
